--- CMakeLists.txt
+++ CMakeLists.txt
@@ -2079,16 +2079,10 @@ if(NOT BRLCAD_IS_SUBBUILD)
     list(REMOVE_DUPLICATES CMAKE_EXTERNAL_TARGET_LIST)
   endif(CMAKE_EXTERNAL_TARGET_LIST)
   foreach(libtarget ${CMAKE_LIBRARY_TARGET_LIST})
-    #TODO - can this locate test be replaced with if(TARGET ${libtarget}) ?
-    if(NOT CMAKE_BUILD_TYPE)
-      get_target_property(target_location ${libtarget} LOCATION)
-    else(NOT CMAKE_BUILD_TYPE)
-      get_target_property(target_location ${libtarget} LOCATION_${CMAKE_BUILD_TYPE})
-    endif(NOT CMAKE_BUILD_TYPE)
-    if(target_location)
+    if(TARGET ${libtarget})
       add_dependencies(${libtarget} timestamp)
       add_dependencies(buildtimedelta ${libtarget})
-    endif(target_location)
+    endif(TARGET ${libtarget})
   endforeach(libtarget ${CMAKE_LIBRARY_TARGET_LIST})
   foreach(exectarget ${CMAKE_EXEC_TARGET_LIST})
     if(NOT CMAKE_BUILD_TYPE)
--- misc/CMake/BRLCAD_CMakeFiles.cmake
+++ misc/CMake/BRLCAD_CMakeFiles.cmake
@@ -65,7 +65,7 @@ macro(CMAKEFILES)
       # make sure the file is there.  Normally attempting to ignore
       # a non-existent file is a fatal error, but these keywords
       # don't necessarily refer to files.
-      set(TARGET_FLAGS SHARED STATIC OBJECT WIN32 UNKNOWN IMPORTED)
+      set(TARGET_FLAGS SHARED STATIC OBJECT WIN32 UNKNOWN IMPORTED MODULE INTERFACE)
       foreach(TARGET_FLAG ${TARGET_FLAGS})
 	if("${TARGET_FLAG}" STREQUAL "${ITEM}")
 	  if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${ITEM})
--- src/libpc/CMakeLists.txt
+++ src/libpc/CMakeLists.txt
@@ -58,6 +58,7 @@ set(LIBPC_SOURCES
 
 add_definitions(
   -DOBJ_BREP=1
+  -DBOOST_DETAIL_NO_CONTAINER_FWD
   )
 
 BRLCAD_ADDLIB(libpc "${LIBPC_SOURCES}" "libbu;${OPENNURBS_LIBRARY};${STDCXX_LIBRARIES}" NO_STRICT_CXX)

